MATLAB读取TXT数据文件的频谱分析 您所在的位置:网站首页 matlab 信号fft MATLAB读取TXT数据文件的频谱分析

MATLAB读取TXT数据文件的频谱分析

2024-07-12 05:22| 来源: 网络整理| 查看: 265

目录

应用背景:

程序实现:

测试:

 注意事项:

应用背景:

        Zynq控制高速高精度ADC(ADS62P49)完成模数转换功能,并将采集的大批量数据(100000x14x2bit)通过DMA传输至DDR3,而后经过网口传输至PC机做后续处理。

         Zynq-LWIP上行传输大批量数据方法说明:https://blog.csdn.net/m0_37779673/article/details/117993851

        在PC中,最基础的信号处理是信号显示与FFT频谱分析,因此本文给出MATLAB读取TXT数据文件的画图与频谱分析。

程序实现: %读取文件 fid_2=fopen('rcv_data.txt', 'r'); %总共10000个 x=10000;y=4; data_5=cell(x,y);%定义cell矩阵,存储文件内容 data_6=cell(x,y); data_7=cell(x,1);%高16位 (16进制) data_8=cell(x,1);%低16位 (16进制) for i=1:x for j=1:y data_5{i,j}=fscanf(fid_2,'%s',[1,1]);%以字符方式读取每个值,遇空格完成每个值的读取 end end fclose (fid_2); for i=1:x %交换顺序 data_6{i,1}=data_5{i,4}; data_6{i,2}=data_5{i,3}; data_6{i,3}=data_5{i,2}; data_6{i,4}=data_5{i,1}; end for i=1:x %两个分开 data_7{i,1}=[data_6{i,1},data_6{i,2}]; data_8{i,1}=[data_6{i,3},data_6{i,4}]; end for i=1:x % data_7{i,1}=hex2dec(data_7{i,1});%将文本格式转为数字格式 data_8{i,1}=hex2dec(data_8{i,1});%将文本格式转为数字格式 end data_9 = cell2mat(data_7)-8192; data_10 = cell2mat(data_8)-8192; %画图 t1=10:500 figure(1) plot(t1,data_9(t1,1)); hold on plot(t1,data_10(t1,1)); % SNR_ADC(data_9,14); % %fft_i Fs = 200000000 ; % 采样频率200M N_i = length(data_9); %样点个数 fft_i = fft(data_9,N_i); P2_i = abs(fft_i/N_i); P1_i = P2_i(1:N_i/2+1); P1_i(2:end-1) = 2 * P1_i(2:end-1); dBm_i = 10 + 20 * log10( 0.5 * (P1_i/1000) ); f_i=(Fs*(0:(N_i/2))/N_i)/1000000; % figure(3); %(x-1)/x*fs plot(f_i,dBm_i); title('信号频谱'); xlabel('f/MHz'); ylabel('功率/dBm'); % % %fft Fs = 200000000 ; % 采样频率200M N_q = length(data_10); %样点个数 fft_q = fft(data_10,N_q); P2_q = abs(fft_q/N_q); P1_q = P2_q(1:N_q/2+1); P1_q(2:end-1) = 2 * P1_q(2:end-1); dBm_q = 10 + 20 * log10( 0.5 * (P1_q/1000) ); f_q=(Fs*(0:(N_q/2))/N_q)/1000000; figure(4); %(x-1)/x*fs plot(f_q,dBm_q); title('信号频谱'); xlabel('f/MHz'); ylabel('幅度'); 测试:

        测试ADC单通道接收功能时,由射频信号源输出10MHz的正弦波,PC机接收数据通过MATLAB观察接收波形及频谱分析。

 ADC采集50MHz正弦波信号的上行传输数据

 注意事项:

        ADC采集数据为有符号数,但MATLAB的plot(t1,data_9(t1,1));函数处理需要无符号数,因此在FPGA采集过程中最好对采集数据做无符号数的转换!!!!!(MATLAB中也可以做转换,但个人尝试,感觉比FPGA中处理要麻烦,所以建议在FPGA中做转换)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有